fiq_fsm: Use correct states when starting isoc OUT transfers (#1991)
authorP33M <P33M@users.noreply.github.com>
Thu, 4 May 2017 13:56:08 +0000 (14:56 +0100)
committerRaspbian kernel package updater <root@raspbian.org>
Thu, 15 Feb 2018 17:37:47 +0000 (17:37 +0000)
commit72a700c419ec2a7fa3eea8d2ea286e5a92f678e8
treeea7c9fe3d2fc1d99de859166b6debaab4b18fd35
parentbcd29cfe54d7ab591c38d5f818cce6eed1d66b8f
fiq_fsm: Use correct states when starting isoc OUT transfers (#1991)

* fiq_fsm: Use correct states when starting isoc OUT transfers

In fiq_fsm_start_next_periodic() if an isochronous OUT transfer
was selected, no regard was given as to whether this was a single-packet
transfer or a multi-packet staged transfer.

For single-packet transfers, this had the effect of repeatedly sending
OUT packets with bogus data and lengths.

Eventually if the channel was repeatedly enabled enough times, this
would lock up the OTG core and no further bus transfers would happen.

Set the FSM state up properly if we select a single-packet transfer.

Fixes https://github.com/raspberrypi/linux/issues/1842
drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c